﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using proyectoFinalPDS.Persistencia;
using proyectoFinalPDS.Presentacion;
using proyectoFinalPDS.Presentacion.DTO;

namespace proyectoFinalPDS.Aplicacion
{
    class ControladorCursos
    {
        public List<Presentacion.DTOCursos> getCursos()
        {
            DAOCursos daoC = new DAOCursos();

            return daoC.getCursos();
        }

        internal List<Presentacion.DTODocente> getDocentes(int p)
        {
            DAOCursos daoC = new DAOCursos();
            List<DTODocente> ld = new List<DTODocente>();
            Curso curso= daoC.getCurso(p);

            foreach (Dicta dicta in curso.Dicta)
            {
              DTODocente dtoD = new DTODocente(dicta.Docente.Usuario.nombre.Trim(), dicta.Docente.Usuario.apelliido.Trim()
                    , dicta.Docente.Usuario.email.Trim(), dicta.rol.Trim());

                ld.Add(dtoD);
            }

            return ld;
        }

        internal List<int> getAños()
        {
            DAOCursos daoC = new DAOCursos();



            List<int> lAños = new List<int>();

            foreach (DTOCursos c in daoC.getCursos2())
            {
                if (!lAños.Contains(c.fechainicio.Year)) 
                    lAños.Add(c.fechainicio.Year);
            }

            return lAños;
        }

        internal List<DTOMaterial> getMaterial()
        {
            List<DTOMaterial> lMateriles = new List<DTOMaterial>();
            return lMateriles;
        }

        internal bool crearTarea(DTOTarea dt)
        {
            DAOCursos dc = new DAOCursos();
            Curso curso = dc.getCurso(dt.idCurso);
            curso.crear(dt);
            if(dc.persistir(curso))
                return true;
            return false;
        }

        internal List<Tarea> getTareas(int idCurso)
        {
            DAOTarea dao = new DAOTarea(idCurso);
            return dao.getTareas(idCurso);
        }

        internal List<Alumno> getAlumnos(int idCurso)
        {
            DAOAlumno dao = new DAOAlumno();
            return dao.getAlumnos(idCurso);
        }

        internal List<DTOCursos> getCursosAlumno(int idUsuario)
        {
            DAOCursos daoC = new DAOCursos();

            return daoC.getCursosAlumno(idUsuario);


        }
    }
}
